home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
mac
/
files
/
dsp
/
56000tar.z
/
56000tar
/
56000
/
flts
/
iir2.hlp
< prev
next >
Wrap
Text File
|
1991-11-26
|
2KB
|
80 lines
2 IIR2
Name: IIR2.ASM
Type: Assembler Macro
Version: 1.0
Date Entered: 15-Jul-87
Last Change: 15-Jul-87
Description: Direct Form Second Order All Pole Filter with Scaling
This macro implements a second order all pole IIR filter. The
DSP56000/1 scaling modes are used to provide coefficient scaling.
This allows coefficients with magnitudes less than two. This
is similar in operation to the IIR1 macro.
When the A or B register is read, the value is shifted
left such that the value of the filter state is multiplied by 2.
Since the coefficients are divided by two, the scale factors cancel.
This allows coefficients in filters to have magnitudes bounded by
2 which is typical of second order sections.
The difference equation for the filter is:
y(n)= 2 [x(n) + a(1)y(n-1) + a(2)y(n-2)]
--- ---- ----
2 2 2
with z transform:
Y(z) 1
----- = -------------------------
X(z) -1 -2
1 - a(1) z - a(2) z
where:
x(n) = input sample at time nT
y(n) = output of the filter at time nT
a(n) = filter coefficient n
T = sample period
An example network to realize such a filter is shown in below.
Input
>----------(+)------------------------> Output
x(n) ^ | y(n)
| a(1) 1/z
(+)<-- 0.8 -----|
^ |
| a(2) 1/z
(+)<-- -0.3 ----|
Second Order Direct Form All Pole IIR Filter
The coefficients in the example are arbitrary. The memory
map for the filter is shown below:
r0
|
v
--------------------
X: | | |
| y(n-1) | y(n-2) | Filter States
--------------------
--------------------
Y: | a(1) | a(2) |
| .8/2 | -.3/2 | Filter Coefficients
--------------------
^
|
r4
Memory Map for the Second Order All Pole Filter
The modulo registers m0 and m4 are set to -1 for linear
arithmetic.
For an example of how to use this macro, see the test
program IIR2T.ASM